package libs.game;


import libs.game.sokoban.SokobanGamePlan;
import java.util.Map;
import java.io.IOException;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * @author      Jan Papousek
 * @version     2009-02-22
 */
public interface Game {

    /**
     *          It returns an actual game plan.
     *
     * @return  An actual game plan.
     */
    GamePlan getGamePlan();

    /**
     *          It tries to do a moves.
     *
     * @param   moves   Moves in format 'from -> to'
     * @return  There is no way                     -> -1.
     *          The program didn't find any way     ->  0.
     *          There is a way                      ->  1.
     * @throws  IllegalArgumentException if there are no boxes on 'from' coordinates.
     */
    //int help(Map<Coordinates,Coordinates> moves);

    /**
     *          It checks if the game plan is in dead lock.
     *
     * @return  TRUE if the game plan is locked, otherwise FALSE.
     */
    boolean isLocked();

    /**
     *          It checks if the game plan is solved.
     *
     * @return  TRUE if the game plan is solved, otherwise FALSE.
     */
    boolean isSolved();

}
